#!/usr/bin/env python3
"""
路径问题检查脚本
用于验证路径配置是否正确
"""

import os
import sys

# 添加项目根目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))


def check_paths():
    """检查所有重要路径"""
    print("=== 路径问题检查报告 ===\n")

    # 项目根目录
    root_dir = os.path.dirname(os.path.abspath(__file__))
    print(f"项目根目录: {root_dir}")

    # 检查配置文件
    config_file = os.path.join(root_dir, 'config', 'settings.py')
    print(f"配置文件: {config_file}")

    if os.path.exists(config_file):
        # 导入配置
        from config.settings import Config

        print(f"工作目录: {Config.DEFAULT_WORK_DIR}")
        print(f"M3U8下载器路径: {Config.DEFAULT_M3U8_PATH}")

        # 验证路径
        print(f"工作目录是否为绝对路径: {os.path.isabs(Config.DEFAULT_WORK_DIR)}")
        print(f"M3U8下载器是否存在: {os.path.exists(Config.DEFAULT_M3U8_PATH)}")

        # 检查tools目录
        tools_dir = os.path.join(root_dir, 'tools')
        print(f"Tools目录: {tools_dir}")
        print(f"Tools目录是否存在: {os.path.exists(tools_dir)}")

        # 检查所有文件
        if os.path.exists(tools_dir):
            files = os.listdir(tools_dir)
            print(f"Tools目录下的文件: {files}")

            # 检查M3U8下载器
            m3u8_files = [f for f in files if 'm3u8' in f.lower() and f.endswith('.exe')]
            print(f"找到M3U8下载器: {m3u8_files}")

            if m3u8_files:
                full_path = os.path.join(tools_dir, m3u8_files[0])
                print(f"完整路径: {full_path}")
                print(f"是否为绝对路径: {os.path.isabs(full_path)}")

            # 检查ffmpeg.exe
            ffmpeg_path = os.path.join(tools_dir, 'ffmpeg.exe')
            ffmpeg_exists = os.path.exists(ffmpeg_path)
            print(f"ffmpeg.exe是否存在: {'✅ 存在' if ffmpeg_exists else '❌ 不存在'}")
            if ffmpeg_exists:
                print(f"ffmpeg.exe完整路径: {ffmpeg_path}")
                print(f"是否与M3U8下载器同级目录: {'✅ 是' if m3u8_files else '❌ 否'}")

            # 检查两个文件是否都在同级目录
            if m3u8_files and ffmpeg_exists:
                print("\n=== 同级目录检查 ===")
                m3u8_path = os.path.join(tools_dir, m3u8_files[0])
                ffmpeg_dir = os.path.dirname(ffmpeg_path)
                m3u8_dir = os.path.dirname(m3u8_path)

                if ffmpeg_dir == m3u8_dir:
                    print("✅ ffmpeg.exe和M3U8下载器在同一目录")
                    print(f"共同目录: {ffmpeg_dir}")
                else:
                    print("❌ ffmpeg.exe和M3U8下载器不在同一目录")
                    print(f"ffmpeg目录: {ffmpeg_dir}")
                    print(f"M3U8目录: {m3u8_dir}")

    # 检查目录结构
    print("\n=== 目录结构检查 ===")
    important_dirs = ['config', 'core', 'lib', 'tools', 'logs', 'videos']

    for dir_name in important_dirs:
        dir_path = os.path.join(root_dir, dir_name)
        exists = os.path.exists(dir_path)
        print(f"{dir_name}: {'✅ 存在' if exists else '❌ 不存在'}")


if __name__ == "__main__":
    check_paths()
